import{request} from "../../request/index.js"
import regeneratorRuntime from '../../lib/runtime/runtime';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    //左侧的菜单数据
    leftMenuList:[],
    //右侧的商品数据
    rightContent:[],
    //被点击的左侧菜单
    currentIndex:0,
    //右侧内容的滚动条距离顶部的距离
    scrollTop:0
  },
  //接口的返回数据
  Cates:[],

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //this.getCates();
    //1 获取本地存储的数据
    const Cates=wx.getStorageSync('cates')
    //2 判断
    if(!Cates){
      // 不存在
      this.getCates();
    }else{
      // 有旧数据 暂时定义过期事件
      //1s=1000ms  5分钟
      if(Date.now()-Cates.time>1000*300){
        //重新获取数据
        this.getCates();
      }else{
        //使用缓存
        this.Cates=Cates.data; 
        let leftMenuList=this.Cates.map(v=>v.cat_name);
        let rightContent=this.Cates[0].children;
        this.setData({
          leftMenuList,
          rightContent
        })
      }
    }
  },
  //获取分类数据
  async getCates(){
    // request({
    //   url:"/categories"
    // })
    // .then(res=>{
    //   this.Cates=res.data.message;

    //   //把接口数据存入本地存储
    //   wx.setStorageSync('cates', {time:Date.now(),data:this.Cates})
    //   //构造左侧菜单数据
    //   let leftMenuList=this.Cates.map(v=>v.cat_name);
    //   //构造右侧商品数据
    //   let rightContent=this.Cates[0].children;
    //   this.setData({
    //     leftMenuList,
    //     rightContent
    //   })
    // })
    // 1 使用es7的 async await来发送请求
    const res = await request({url:"/categories"});
      this.Cates=res;
      //把接口数据存入本地存储
      wx.setStorageSync('cates', {time:Date.now(),data:this.Cates})
      //构造左侧菜单数据
      let leftMenuList=this.Cates.map(v=>v.cat_name);
      //构造右侧商品数据
      let rightContent=this.Cates[0].children;
      this.setData({
        leftMenuList,
        rightContent
      }) 
  },
  //左侧菜单的点击事件
  handleItemTap(e){
    //console.info(e);
    const{index}=e.currentTarget.dataset;
   
    //构造右侧商品数据
    let rightContent=this.Cates[index].children;
   
    this.setData({
      currentIndex:index,
      rightContent,
       //重新设置右侧内容的scroll-view 标签的距离顶部的距离
      scrollTop:0
    })
    
  }
})